/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.goldentrade.negocio.interfaces.impl;

import br.com.goldentrade.negocio.beans.EstrategiaOperacao;
import br.com.goldentrade.negocio.interfaces.IEstrategiaOperacao;
import br.com.goldentrade.negocio.interfaces.impl.serviceLocator.ServiceLocator;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.persistence.EntityManager;
import javax.persistence.NoResultException;

/**
 *
 * @author itaipu
 */
public class EstrategiaOperacaoImpl implements IEstrategiaOperacao {
    private EntityManager em;

    public void atualizar(EstrategiaOperacao eo) {
       try {
            em = ServiceLocator.getEntityManager();
            em.getTransaction().begin();
            if(eo.getCdEstrategia() == null){
                em.persist(eo);    
            }else{
                em.merge(eo);
            }
            em.getTransaction().commit();
            ServiceLocator.leaveEntityManager(em);
            
        } catch (Exception e) {
            System.out.println(e.getStackTrace());
        }
    }

    public void remover(EstrategiaOperacao eo) {
        try{
            em = ServiceLocator.getEntityManager();
            em.getTransaction().begin();
            em.remove(eo);
            em.getTransaction().commit();
            ServiceLocator.leaveEntityManager(em);
            
        } catch (Exception e) {
            System.out.println(e.getStackTrace());
        }
    }

    public EstrategiaOperacao selecionar(int cd) {
       EstrategiaOperacao eo = null;
        try {
            em = ServiceLocator.getEntityManager();
            eo = (EstrategiaOperacao) em.createNamedQuery("EstrategiaOperacao.findByCdEstrategia").setParameter("cdEstrategia", cd).getSingleResult();
            ServiceLocator.leaveEntityManager(em);
        } catch (NoResultException e) {
            System.out.println(e.getStackTrace());
        }
        return eo;
    }

    public List<EstrategiaOperacao> selecionarTudo() {
        List<EstrategiaOperacao> estrategias = null;
        try {
            em = ServiceLocator.getEntityManager();
            estrategias = em.createNamedQuery("EstrategiaOperacao.findAll").getResultList();
            ServiceLocator.leaveEntityManager(em);
        } catch (Exception e) {
        }
        if(estrategias != null){
            return estrategias;
        }else{
            try {
                throw new Exception("Não possui dados");
            } catch (Exception ex) {
                Logger.getLogger(UsuarioImpl.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
        return null;
    }

    
}
